const { app, BrowserWindow, ipcMain } = require("electron");
const path = require("node:path");
const fs = require("fs");
const createServers = require("./server");

// 添加热重载（仅在开发环境中使用）
if (process.env.NODE_ENV === 'development') {
  try {
    require('electron-reloader')(module);
  } catch (_) { }
}
var mainWindow = null;
// 创建窗口函数
function createWindow() {
  // 读取配置文件

  // 创建浏览器窗口
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, "preload.js"), // 如果有需要预加载的脚本
      nodeIntegration: false,
      contextIsolation: true,
      sandbox: true,
    },
    // frame: false,
  });

  mainWindow.loadFile("index.html");
  mainWindow.setMenu(null);

  // 当窗口准备好时显示
  mainWindow.once("ready-to-show", () => {
    mainWindow.show();
  });
  
  ipcMain.on('esc-main-full', () => {
    if (mainWindow.isFullScreen()) {
      mainWindow.setFullScreen(false)
    } else {
      mainWindow.setFullScreen(true)
    }
  })
  mainWindow.webContents.openDevTools();
}
// 当Electron完成初始化并准备创建浏览器窗口时调用
app.whenReady().then(() => {
  createWindow();
  app.on("activate", () => {
    // macOS 上，当点击 Dock 图标并且没有其他窗口打开时，重新创建一个窗口。
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
  // 启动WebSocket服务器并传入mainWindow以便发送消息到渲染进程
  createServers.start(mainWindow);
});

// 关闭所有窗口时退出应用 (Windows & Linux)
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") app.quit();
});
